12630
3675
أنا مجرد مبتدئ في الترميز السريع. فكرتي بسيطة للغاية وهي عبارة عن تطبيق به زرين. عند النقر فوقه ، سيغير حقل النص نصه.
في Main.StoryBoard ، أضف حقل نص وزرين.
في ملف ViewController.swift. أكتب على النحو التالي:
استيراد UIKit
فئة ViewController: UIViewController {
IBOutlet ضعيف var textfield: UITextField!
IBOutlet زر var ضعيف: UIButton!
IBOutlet ضعيف var button2: UIButton!
IBAction func action1 (_ المرسل: UIButton) {
textfield.text = "لقد نقرت للتو على الزر 1"
}
IBAction func action2 (_ المرسل: UIButton) {
textfield.text = "لقد نقرت للتو على الزر 2"
}
}
من المفترض أن يكون كل شيء على ما يرام. ومع ذلك ، يظهر خطأ يوضح:
thread1: إشارة SIGABRT
في سطر ملف AppDelegate.swift:
مندوب فئة التطبيق: UIResponder ، UIApplicationDelegate
ماخطب الرمز خاصتي؟ 
لحل المشكلة ، قم أولاً بتنظيف المشروع ثم إعادة البناء.
لتنظيف المشروع ، انتقل إلى MenuBar: Product -> Clean
ثم لإعادة بناء المشروع ، ما عليك سوى النقر فوق الزر "تشغيل" كالمعتاد.
|
تحصل على خطأ SIGABRT عندما يكون لديك منفذ غير متصل. انقر فوق وحدة التحكم الخاصة بك في لوحة العمل وانتقل إلى الاتصالات الموجودة في اللوحة الجانبية (رمز السهم). تحقق مما إذا كان لديك منفذ إضافي هناك ، أو مكرر ، أو منفذ إضافي غير متصل. إذا لم يكن الأمر كذلك ، فربما لم تقم بتوصيل منافذ البيع الخاصة بك بالرمز الخاص بك بشكل صحيح.
فقط تذكر أن SIGABRT يحدث عندما تحاول الاتصال بمنفذ (زر ، عرض ، حقل نص ، إلخ) غير موجود.
|
بالنسبة لي لم يكن منفذًا. لقد قمت بحل المشكلة بالذهاب إلى الخطأ وقراءة ما قاله. (مستجد أيضا ..)
كان هذا هو الخطأ:
وكان الحل هنا:
فقط قم بالتمرير لأعلى في الإخراج وسيتم الكشف عن الخطأ.
|
أحد الأسباب الشائعة لهذا النوع من الأخطاء هو أنك ربما قمت بتغيير اسم IBOutlet أو IBAction الخاص بك ، يمكنك ببساطة التحقق من ذلك بالانتقال إلى الكود المصدري.
انقر فوق main.storyboard ثم حدد فتح باسم
ثم حدد شفرة المصدر
سيتم فتح كود المصدر
ثم تحقق مما إذا كان هناك اسم iboutlet أو ibaction الذي قمت بتغييره ، وإذا كان هناك ، فحدد الجزء وحذفه ثم قم بإنشاء iboutlet أو ibaction مرة أخرى.
هذا يجب حل مشكلتك
|
في حالتي ، لم أحصل على خطأ ، فقط التعطل في AppDelegate واضطررت إلى إلغاء تحديد الخيار التالي: OS_ACTIVITY_MODE ، ثم يمكنني الحصول على سبب الانهيار الحقيقي في ملف .xib الخاص بي
آمل أن يساعدك هذا أيضًا :)
|
كان لي نفس المشكلة. لقد قمت بعمل زر في لوحة العمل وربطته بـ ViewController ، ثم قمت لاحقًا بحذف الزر. لذلك كان الاتصال لا يزال موجودًا ، لكن الزر لم يكن كذلك ، ولذا حصلت على نفس الخطأ الذي تلقيته.
لإصلاح:
انتقل إلى مفتش الاتصال (السهم الموجود في الزاوية اليمنى العليا ، في لوحة العمل الخاصة بك) ، واحذف أي اتصالات غير مستخدمة.
|
إذا واجهت هذا في Xcode 10 ، فسيتعين عليك التنظيف قبل الإنشاء. أو قم بالتبديل إلى نظام الإنشاء القديم. ملف -> إعدادات مساحة العمل ... -> إنشاء نظام: نظام إنشاء قديم.
|
في حالتي لم يكن هناك سجل على الإطلاق.
كان خطئي هو دفع وحدة التحكم في العرض في حزمة التنقل التي كانت بالفعل جزءًا من حزمة التنقل.
|
يحدث أحيانًا أيضًا عندما تحتاج الوظيفة إلى التنفيذ في السلسلة الرئيسية فقط ، لذا يمكنك إصلاحها عن طريق تعيينها إلى السلسلة الرئيسية على النحو التالي: -
DispatchQueue.main.async {
رمزك هنا
}
|
بالنسبة لي ، كان هذا الخطأ بسبب وجود خطوة إعداد لم تكن قابلة للتطبيق على المقطع الذي تم إجراؤه.
قصة طويلة:
تجاوز إعداد func (لـ segue: UIStoryboardSegue ، المرسل: أي؟) {
اسمحوا gosetup = segue.destination مثل! تحديث
gosetup.wherefrom = updatestring
}
كان هذا يتم القيام به لجميع segue عندما كان لواحد فقط. لذلك قمت بإنشاء منطقية ووضعت gosetup بداخلها.
|
هذا خطأ شائع جدًا ويمكن أن يحدث لأسباب متعددة. الأكثر شيوعًا هو عندما يتم حذف IBOUTLET / IBACTION المتصل بوحدة التحكم في العرض في لوحة العمل من الملف السريع ولكن ليس من لوحة العمل. إذا لم يكن الأمر كذلك ، فاستخدم السجل الموجود في شريط الأدوات السفلي لمعرفة الخطأ وتشخيصه. يمكنك استخدام نقاط التوقف وتصحيح الأخطاء لمساعدتك في العثور على الخطأ.
لمعرفة كيفية إصلاح الخطأ ، يرجى استخدام هذه المقالة التي وجدتها على Google: https://rayaans.com/fixing-the-notorious-sigabrt-error-in-xcode
|
في حالتي ، كنت أستخدم RxSwift لإجراء البحث.
لقد واصلت على نطاق واسع استخدام مثيل مشترك لفئة معينة داخل طريقة onNext ، مما جعلها على الأرجح غير قابلة للوصول (Mutex).
تأكد من التعامل مع مثل هذه الحالات بعناية فقط عند الضرورة القصوى.
في حالتي ، استخدمت متغيرين مسبقًا لتخزين قيم الإرجاع لأساليب المثيل المشترك بأمان (وبشكل متسلسل) ، وإعادة استخدامها داخل كتلة onNext.
|
كان لي نفس المشكلة. في حالتي ، قمت بالكتابة فوق الملف
GoogleService-Info.plist
على هذا الطريق:
النظام الأساسي \ ios \ YOUR_APP_NAME \ الموارد \ الموارد
في حالتي كانت الملفات موجودة بدون بيانات.
|
سؤال نشط للغاية. اكسب 10 سمعة للإجابة على هذا السؤال. تساعد متطلبات السمعة في حماية هذا السؤال من البريد العشوائي ونشاط عدم الإجابة.
ليس الجواب الذي تبحث عنه؟ تصفح الأسئلة الأخرى الموسومة بـ ios swift أو اطرح سؤالك الخاص.